#ifndef _ICECODE_UTILS_ARGS_HPP
#define _ICECODE_UTILS_ARGS_HPP

#include <vector>
#include <string>

namespace icecode {

  //A class for managing the command line arguments.
  class ArgumentManager {
  public:
    ArgumentManager(int argc, char **argv);

    bool isPresent(std::string arg);

    //Checks if index is last
    bool isLast(int idx) throw() { return (idx == values.size() - 1); }

    const std::string& operator[] (int index) const { return values[index]; }

  private:
    std::vector<std::string> values;
  };

}

#endif //_ICECODE_UTILS_ARGS_HPP
